---
title: Routing Exports
---

This page catalogs all the special exports One supports from route files.

<Notice>
  Note that `_layout` routes are special and do not support these exports unless specified.
</Notice>

### generateStaticParams

This export is needed for "ssg" type pages that use dynamic path segments (for example, `[id].tsx`). At build-time, One will expand the id segment into multiple pages, using the values you return from `generateStaticParams`.

The entire function and export `generateStaticParams` will be removed at build-time and everything it depends on will be tree-shaken out of your client-side bundle.

You'll need to return an array of objects, where the object keys match the name inside the brackets. As an example, we'll use nested dynamic segments:

```tsx fileName=app/blog/[month]/[year]/[slug]+ssg.tsx
export async function generateStaticParams() {
  const blogPosts = await getAllBlogPosts()

  return blogPosts.map(post => {
    return {
      month: post.month,
      year: post.year,
      slug: post.slug,
    }
  })
}
```

If this function returned this:

```tsx
[
  {
    month: 10,
    year: 2025,
    slug: 'some-slug'
  }
]
```

Then you'd generate one page at `/blog/10/2025/some-slug`.
